from abc import ABC, abstractmethod

class DiscountStrategy(ABC):
    @abstractmethod
    def apply_discount(self, total_price):
        pass

class FullReductionStrategy(DiscountStrategy):
    def __init__(self, threshold, reduction):
        self.threshold = threshold
        self.reduction = reduction

    def apply_discount(self, total_price):
        return total_price - self.reduction if total_price >= self.threshold else total_price



class MemberDiscountStrategy(DiscountStrategy):
    def __init__(self, rate):
        self.rate = rate

    def apply_discount(self, total_price):
        return total_price * self.rate

class SeckillDiscountStrategy(DiscountStrategy):
    def __init__(self, rate):
        self.rate = rate

    def apply_discount(self, total_price):
        return total_price * self.rate